package come.bjpowernode.javase.io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/*
java.io.FileInputStream:
    1、文件字节输入流，万能的，任何类型的文件都可以采用这个流来读。
    2、字节输入流，完成输入的操作，完成读的操作，从硬盘到内存。
    3、
 */
public class FileInputStreamTest01 {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try{
            //创建文件字节输入流对象
            //以下都是采用了绝对路径
            //FileInputStream fis = new FileInputStream("F:\\postgraduate\\ana_start\\Java\\IDEA\\练习");
            //写成这个'/'也是可以的
            fis = new FileInputStream("F:/postgraduate/ana_start/Java/IDEA/练习.txt");

            //开始读
            int readData = fis.read();//z这个方法的返回值是：读取到的“字节”本身。
            System.out.println(readData);//97

            readData = fis.read();
            System.out.println(readData);//98

            readData = fis.read();
            System.out.println(readData);//99

            readData = fis.read();
            System.out.println(readData);//100

            readData = fis.read();
            System.out.println(readData);//101

            readData = fis.read();
            System.out.println(readData);//102

            readData = fis.read();
            System.out.println(readData);//-1

            readData = fis.read();
            System.out.println(readData);//-1
        }catch(FileNotFoundException e){
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally{
            //在finally语句块中确保流一定关闭
            //关闭流的前提是流不为空，流为null的时候没必要关闭，也是为了避免空指针异常
            if (fis != null) {
                try{
                    fis.close();
                }catch(IOException e){
                    e.printStackTrace();
                }

            }
        }

    }
}
